A bus analyzer is a computer bus analysis tool, often a combination of hardware and software, used during development of hardware or device drivers for a specific bus, for diagnosing bus or device failures, or reverse engineering.
A bus analyzer is a type of protocol analyzer, which is designed for use with certain specific parallel and serial bus architectures. It differs from packet analyzers which analyze traffic running across non-bus-based mediums such as Ethernet networks and wireless LANs or PANs.
The bus analyzer monitors the bus traffic and decodes and displays the data. It is essentially a logic analyzer with some additional knowledge of the underlying bus traffic characteristics.
Some key differentiator between bus and logic analyzers are:
Analyzers are now available for virtually all existing computer bus standards and form factors such as PCI, CompactPCI, PCI Express, PMC, USB, VMEbus, CANbus and LINbus, etc. Bus analyzers are used in the Avionics industry to analyze MIL-STD-1553, ARINC 429, AFDX, and other avionics databus protocols. Specialized bus analyzers are also used in the mass storage industry to analyze popular data transfer protocols between computers and drives. These cover popular data buses like SATA, SAS, ATA/PI, SCSI, etc. These devices are typically connected in series between the host computer and the target drive, where they 'snoop' traffic on the bus, capture it and present it in human-readable format.
For many bus architectures like PCI Express, PCI, SAS, SATA, USB and so on, Analyzers are often used in conjunction with a "Bus Exerciser", which actively engages the bus while the analyzer snoops it. Especially with these bus architectures (PCI and PCI-Express), manufacturers have bundled these functions together into a "Bus Analyzer/Exerciser" that resides on a single board or integrated set of boards. These devices make it possible to generate bad bus traffic as well as good so that the device error recovery systems can be tested. They are also often used to verify compliance with the standard to ensure interoperability of devices since they can reproduce known scenarios in a repeatable way.